package waitandnotify02;

import java.util.concurrent.ArrayBlockingQueue;

public class ThreadBlockDemo {
    public static void main(String[] args) {
        /*
            需求:利用阻塞队列完成生产者和消费者(等待唤醒机制)的代码
            细节:
                 生产者和消费者必须使用同一个阻塞队列
         */

        // 1.创建阻塞队列的对象
        // ArrayBlockingQueue是有界阻塞队列,在创建ArrayBlockingQueue对象的时候必须指定它的上限
        ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(1);
        // 2.创建线程的对象,并把阻塞队列传递过去
        Thread p = new Producer("厨师",queue);
        Thread c = new Consumer("食客",queue);
        // 3.开启线程
        p.start();
        c.start();
    }
}
